/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 京东云私有域名解析OpenAPI接口
 * 京东云私有域名解析OpenAPI接口
 *
 * OpenAPI spec version: v1
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using JDCloudSDK.Core.Auth;
using JDCloudSDK.Core.Client;
using JDCloudSDK.Core.Http;
using JDCloudSDK.Privatezone.Apis;
using JDCloudSDK.Privatezone.Model;
using System;
using System.Collections.Generic;
using System.Text;
#if NET40||NET35
#else
using System.Threading.Tasks;
#endif

namespace JDCloudSDK.Privatezone.Client
{
    /// <summary>
    ///  京东云私有域名解析OpenAPI接口
    ///  京东云私有域名解析OpenAPI接口
    ///  Privatezone Api 客户端
    ///</summary>
    public class PrivatezoneClient : JdcloudClient
    {

        /// <summary>
        ///  默认私有构造函数
        /// </summary>
        private PrivatezoneClient()
        {

        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="environment">sdk 环境配置信息</param>
        public PrivatezoneClient(CredentialsProvider credentialsProvider, HttpRequestConfig httpRequestConfig,SDKEnvironment environment)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
            this.environment = environment;
        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="credentialsProvider">认证信息</param>
        public PrivatezoneClient(CredentialsProvider credentialsProvider,HttpRequestConfig httpRequestConfig)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        /// 默认构造函数，
        /// 注意如果使用此方法 httpRequestConfig 使用的http 请求 schema 为Https
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        public PrivatezoneClient(CredentialsProvider credentialsProvider)
        {
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        ///  版本号 1.2.4
        ///</summary>
        public const string ClientVersion = "1.2.4";

        private const string apiVersion = "v1";
        private const string userAgentPrefix = "JdcloudSdkDotNet";
        private const string defaultEndpoint = "privatezone.jdcloud-api.com";
        private const string serviceName = "privatezone";
        private const string userAgent = userAgentPrefix + "/" + ClientVersion + " " + serviceName + "/" + apiVersion;


        private SDKEnvironment environment = new SDKEnvironment(defaultEndpoint);
        private CredentialsProvider credentialsProvider;
        private HttpRequestConfig httpRequestConfig;

        /// <summary>
        ///  获取证书信息
        ///</summary>
        public override CredentialsProvider CredentialsProvider   { get { return credentialsProvider; } }

        /// <summary>
        ///  获取http 客户端配置信息
        ///</summary>
        public override HttpRequestConfig HttpRequestConfig { get { return httpRequestConfig; } }

        /// <summary>
        ///  获取sdk环境配置信息
        ///</summary>
        public override SDKEnvironment SDKEnvironment { get { return environment; } }

        /// <summary>
        ///  获取用户自定义浏览器识别字符串
        ///</summary>
        public override string UserAgent { get { return userAgent; } }

        /// <summary>
        ///  获取服务名称
        ///</summary>
        public override string ServiceName { get { return serviceName; } }

        /// <summary>
        ///  获取版本号
        ///</summary>
        public override string Version { get { return apiVersion; } }



#if NET40||NET35
        /// <summary>
        ///  查询操作日志
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeActionLogsResponse DescribeActionLogs(DescribeActionLogsRequest request) {
            return  new DescribeActionLogsExecutor().Client(this).Execute<DescribeActionLogsResponse, DescribeActionLogsResult, DescribeActionLogsRequest>(request);
        }
#else
        /// <summary>
        ///  查询操作日志
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeActionLogsResponse> DescribeActionLogs(DescribeActionLogsRequest request) {
            return await new DescribeActionLogsExecutor().Client(this).Execute<DescribeActionLogsResponse, DescribeActionLogsResult, DescribeActionLogsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  导出当前zone下所有解析记录，返回的数据是可以转换为csv文件格式的字符串
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ExportResourceRecordsResponse ExportResourceRecords(ExportResourceRecordsRequest request) {
            return  new ExportResourceRecordsExecutor().Client(this).Execute<ExportResourceRecordsResponse, ExportResourceRecordsResult, ExportResourceRecordsRequest>(request);
        }
#else
        /// <summary>
        ///  导出当前zone下所有解析记录，返回的数据是可以转换为csv文件格式的字符串
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ExportResourceRecordsResponse> ExportResourceRecords(ExportResourceRecordsRequest request) {
            return await new ExportResourceRecordsExecutor().Client(this).Execute<ExportResourceRecordsResponse, ExportResourceRecordsResult, ExportResourceRecordsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  批量导入解析记录，批量导入每次不可超过100条记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ImportResourceRecordsResponse ImportResourceRecords(ImportResourceRecordsRequest request) {
            return  new ImportResourceRecordsExecutor().Client(this).Execute<ImportResourceRecordsResponse, ImportResourceRecordsResult, ImportResourceRecordsRequest>(request);
        }
#else
        /// <summary>
        ///  批量导入解析记录，批量导入每次不可超过100条记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ImportResourceRecordsResponse> ImportResourceRecords(ImportResourceRecordsRequest request) {
            return await new ImportResourceRecordsExecutor().Client(this).Execute<ImportResourceRecordsResponse, ImportResourceRecordsResult, ImportResourceRecordsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  统计zone的解析量
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ZoneResolveCountResponse ZoneResolveCount(ZoneResolveCountRequest request) {
            return  new ZoneResolveCountExecutor().Client(this).Execute<ZoneResolveCountResponse, ZoneResolveCountResult, ZoneResolveCountRequest>(request);
        }
#else
        /// <summary>
        ///  统计zone的解析量
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ZoneResolveCountResponse> ZoneResolveCount(ZoneResolveCountRequest request) {
            return await new ZoneResolveCountExecutor().Client(this).Execute<ZoneResolveCountResponse, ZoneResolveCountResult, ZoneResolveCountRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询实例信息
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeInstancesResponse DescribeInstances(DescribeInstancesRequest request) {
            return  new DescribeInstancesExecutor().Client(this).Execute<DescribeInstancesResponse, DescribeInstancesResult, DescribeInstancesRequest>(request);
        }
#else
        /// <summary>
        ///  查询实例信息
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeInstancesResponse> DescribeInstances(DescribeInstancesRequest request) {
            return await new DescribeInstancesExecutor().Client(this).Execute<DescribeInstancesResponse, DescribeInstancesResult, DescribeInstancesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询解析记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeResourceRecordsResponse DescribeResourceRecords(DescribeResourceRecordsRequest request) {
            return  new DescribeResourceRecordsExecutor().Client(this).Execute<DescribeResourceRecordsResponse, DescribeResourceRecordsResult, DescribeResourceRecordsRequest>(request);
        }
#else
        /// <summary>
        ///  查询解析记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeResourceRecordsResponse> DescribeResourceRecords(DescribeResourceRecordsRequest request) {
            return await new DescribeResourceRecordsExecutor().Client(this).Execute<DescribeResourceRecordsResponse, DescribeResourceRecordsResult, DescribeResourceRecordsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询私有解析zone列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeZonesResponse DescribeZones(DescribeZonesRequest request) {
            return  new DescribeZonesExecutor().Client(this).Execute<DescribeZonesResponse, DescribeZonesResult, DescribeZonesRequest>(request);
        }
#else
        /// <summary>
        ///  查询私有解析zone列表
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeZonesResponse> DescribeZones(DescribeZonesRequest request) {
            return await new DescribeZonesExecutor().Client(this).Execute<DescribeZonesResponse, DescribeZonesResult, DescribeZonesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  绑定vpc
        /// - vpc信息为空时，会将之前的绑定关系全部解除
        /// - 该接口为覆盖类的接口，请将需要的vpc全部进行绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public BindVpcResponse BindVpc(BindVpcRequest request) {
            return  new BindVpcExecutor().Client(this).Execute<BindVpcResponse, BindVpcResult, BindVpcRequest>(request);
        }
#else
        /// <summary>
        ///  绑定vpc
        /// - vpc信息为空时，会将之前的绑定关系全部解除
        /// - 该接口为覆盖类的接口，请将需要的vpc全部进行绑定
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<BindVpcResponse> BindVpc(BindVpcRequest request) {
            return await new BindVpcExecutor().Client(this).Execute<BindVpcResponse, BindVpcResult, BindVpcRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  - 添加一个私有解析的zone，可添加以下三种类型的zone
        /// - 云内全局zone：zone的后缀是指定的后缀，如：local。该域名在云内自动全局生效，不用关联vpc即可在vpc内解析，该类型全局唯一，不能重复添加
        /// - 反向解析zone：zone的后缀是in-addr.arpa时，我们认为他是一个反向解析的zone，反向解析域名前缀目前支持10/172.16-31/192.168网段，如：10.in-addr.arpa、16.172.in-addr.arpa。反向解析的zone只能添加反向解析的记录
        /// - 私有解析zone：该类型的zone可以时任意符合格式的域名，私有解析zone需要关联vpc后，在vpc内生效解析
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateZoneResponse CreateZone(CreateZoneRequest request) {
            return  new CreateZoneExecutor().Client(this).Execute<CreateZoneResponse, CreateZoneResult, CreateZoneRequest>(request);
        }
#else
        /// <summary>
        ///  - 添加一个私有解析的zone，可添加以下三种类型的zone
        /// - 云内全局zone：zone的后缀是指定的后缀，如：local。该域名在云内自动全局生效，不用关联vpc即可在vpc内解析，该类型全局唯一，不能重复添加
        /// - 反向解析zone：zone的后缀是in-addr.arpa时，我们认为他是一个反向解析的zone，反向解析域名前缀目前支持10/172.16-31/192.168网段，如：10.in-addr.arpa、16.172.in-addr.arpa。反向解析的zone只能添加反向解析的记录
        /// - 私有解析zone：该类型的zone可以时任意符合格式的域名，私有解析zone需要关联vpc后，在vpc内生效解析
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateZoneResponse> CreateZone(CreateZoneRequest request) {
            return await new CreateZoneExecutor().Client(this).Execute<CreateZoneResponse, CreateZoneResult, CreateZoneRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除zone，该zone下的解析记录和绑定的vpc关联关系将会被删除
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteZoneResponse DeleteZone(DeleteZoneRequest request) {
            return  new DeleteZoneExecutor().Client(this).Execute<DeleteZoneResponse, DeleteZoneResult, DeleteZoneRequest>(request);
        }
#else
        /// <summary>
        ///  删除zone，该zone下的解析记录和绑定的vpc关联关系将会被删除
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteZoneResponse> DeleteZone(DeleteZoneRequest request) {
            return await new DeleteZoneExecutor().Client(this).Execute<DeleteZoneResponse, DeleteZoneResult, DeleteZoneRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建解析记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateResourceRecordResponse CreateResourceRecord(CreateResourceRecordRequest request) {
            return  new CreateResourceRecordExecutor().Client(this).Execute<CreateResourceRecordResponse, CreateResourceRecordResult, CreateResourceRecordRequest>(request);
        }
#else
        /// <summary>
        ///  创建解析记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateResourceRecordResponse> CreateResourceRecord(CreateResourceRecordRequest request) {
            return await new CreateResourceRecordExecutor().Client(this).Execute<CreateResourceRecordResponse, CreateResourceRecordResult, CreateResourceRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  解析失败后，尝试递归解析开关
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public RetryRecurseResponse RetryRecurse(RetryRecurseRequest request) {
            return  new RetryRecurseExecutor().Client(this).Execute<RetryRecurseResponse, RetryRecurseResult, RetryRecurseRequest>(request);
        }
#else
        /// <summary>
        ///  解析失败后，尝试递归解析开关
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<RetryRecurseResponse> RetryRecurse(RetryRecurseRequest request) {
            return await new RetryRecurseExecutor().Client(this).Execute<RetryRecurseResponse, RetryRecurseResult, RetryRecurseRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置解析记录状态，STOP操作会将停止该记录的解析，直到再次START。批量设置时多个resourceRecordId用&quot;,&quot;分隔。批量设置时每次最多不超过100个记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SetResourceRecordsStatusResponse SetResourceRecordsStatus(SetResourceRecordsStatusRequest request) {
            return  new SetResourceRecordsStatusExecutor().Client(this).Execute<SetResourceRecordsStatusResponse, SetResourceRecordsStatusResult, SetResourceRecordsStatusRequest>(request);
        }
#else
        /// <summary>
        ///  设置解析记录状态，STOP操作会将停止该记录的解析，直到再次START。批量设置时多个resourceRecordId用&quot;,&quot;分隔。批量设置时每次最多不超过100个记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SetResourceRecordsStatusResponse> SetResourceRecordsStatus(SetResourceRecordsStatusRequest request) {
            return await new SetResourceRecordsStatusExecutor().Client(this).Execute<SetResourceRecordsStatusResponse, SetResourceRecordsStatusResult, SetResourceRecordsStatusRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改解析记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifyResourceRecordResponse ModifyResourceRecord(ModifyResourceRecordRequest request) {
            return  new ModifyResourceRecordExecutor().Client(this).Execute<ModifyResourceRecordResponse, ModifyResourceRecordResult, ModifyResourceRecordRequest>(request);
        }
#else
        /// <summary>
        ///  修改解析记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifyResourceRecordResponse> ModifyResourceRecord(ModifyResourceRecordRequest request) {
            return await new ModifyResourceRecordExecutor().Client(this).Execute<ModifyResourceRecordResponse, ModifyResourceRecordResult, ModifyResourceRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除解析记录。批量删除时多个resourceRecordId用&quot;,&quot;分隔。批量删除每次最多不超过100个记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteResourceRecordsResponse DeleteResourceRecords(DeleteResourceRecordsRequest request) {
            return  new DeleteResourceRecordsExecutor().Client(this).Execute<DeleteResourceRecordsResponse, DeleteResourceRecordsResult, DeleteResourceRecordsRequest>(request);
        }
#else
        /// <summary>
        ///  删除解析记录。批量删除时多个resourceRecordId用&quot;,&quot;分隔。批量删除每次最多不超过100个记录
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteResourceRecordsResponse> DeleteResourceRecords(DeleteResourceRecordsRequest request) {
            return await new DeleteResourceRecordsExecutor().Client(this).Execute<DeleteResourceRecordsResponse, DeleteResourceRecordsResult, DeleteResourceRecordsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  统计zone的流量
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ZoneFlowCountResponse ZoneFlowCount(ZoneFlowCountRequest request) {
            return  new ZoneFlowCountExecutor().Client(this).Execute<ZoneFlowCountResponse, ZoneFlowCountResult, ZoneFlowCountRequest>(request);
        }
#else
        /// <summary>
        ///  统计zone的流量
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ZoneFlowCountResponse> ZoneFlowCount(ZoneFlowCountRequest request) {
            return await new ZoneFlowCountExecutor().Client(this).Execute<ZoneFlowCountResponse, ZoneFlowCountResult, ZoneFlowCountRequest>(request).ConfigureAwait(false);
        }
#endif

            /// <summary>
            ///  默认PrivatezoneClient 构造器 接口
            ///</summary>
            public interface Builder
            {

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>privatezoneClient 构造器</returns>
                Builder CredentialsProvider(CredentialsProvider provider);

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>privatezoneClient 构造器</returns>
                Builder Environment(Core.Client.SDKEnvironment environment);

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>privatezoneClient 构造器</returns>
                Builder HttpRequestConfig(HttpRequestConfig config);

                /// <summary>
                ///  构造PrivatezoneClient 对象
                ///</summary>
                PrivatezoneClient Build();
            }

            /// <summary>
            ///  默认PrivatezoneClient 构造器
            ///</summary>
            public class DefaultBuilder : Builder
            {
                /// <summary>
                ///  PrivatezoneClient service client
                /// </summary>
                private  PrivatezoneClient privatezoneClient;

                /// <summary>
                ///  默认PrivatezoneClient 构造器构造对象
                ///</summary>
                public DefaultBuilder()
                {
                    privatezoneClient = new PrivatezoneClient();
                }

                /// <summary>
                ///  构造PrivatezoneClient 对象
                ///</summary>
                public PrivatezoneClient Build()
                {
                    if (privatezoneClient.CredentialsProvider == null)
                    {
                        //if credentialsProvider not set, try load jdcloud global default  credentials provider
                        privatezoneClient.credentialsProvider = JdCloud.DefaultInstance.GetCredentialsProvider();
                        if (privatezoneClient.credentialsProvider == null)
                        {
                            throw new ArgumentNullException("PrivatezoneClient build error: jdcloud credentials provider not set");
                        }
                    }
                    if (privatezoneClient.HttpRequestConfig == null)
                    {
                        privatezoneClient.httpRequestConfig = JdCloud.DefaultInstance.GetHttpRequestConfig();
                        if (privatezoneClient.httpRequestConfig == null)
                        {
                        throw new ArgumentNullException("PrivatezoneClient build error: http request config not set");
                        }
                    }
                    return privatezoneClient;
                }

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>privatezoneClient 构造器</returns>
                public Builder CredentialsProvider(CredentialsProvider provider)
                {
                    privatezoneClient.credentialsProvider = provider;
                    return this;
                }

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>privatezoneClient 构造器</returns>
                public Builder Environment(SDKEnvironment environment)
                {
                    privatezoneClient.environment = environment;
                    return this;
                }

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>privatezoneClient 构造器</returns>
                public Builder HttpRequestConfig(HttpRequestConfig config)
                {
                    privatezoneClient.httpRequestConfig = config;
                    return this;
                }
            }
    }
}
